package com.major.hash;

public class HashTab {
    private EmpLinked[] empLinks;
    private int size;

    public HashTab(int size) {
        // 初始化数组
        empLinks = new EmpLinked[size];
        this.size = size;
        // 初始化数组里面的每一条链表
        for (int i = 0; i < empLinks.length; i++) {
            empLinks[i] = new EmpLinked();
        }
    }

    // 添加
    public void add(Emp emp) {
        // 放在第几条链表
        int empLinkNum = hashFun(emp.getId());
        empLinks[empLinkNum].add(emp);
    }

    // 散列函数
    private int hashFun(int id){
        return id % size;
    }

    // 遍历
    public void list() {
        for (int i = 0; i < size; i++) {
            empLinks[i].list(i);
        }
    }

    // 查找
    public Emp findEmpById(int id) {
        int empLinkNum = hashFun(id);
        Emp res = empLinks[empLinkNum].findEmpById(id);
        if (res == null){
            System.out.println("链表为空");
        }
        return res;
    }
}
